#ifndef DOCUMENTHANDLERIMPL_H_INCLUDED
#define DOCUMENTHANDLERIMPL_H_INCLUDED

#include "DocumentHandler.h"
#include "CSSException.h"
#include <string>
using std::string;

class SACMediaList;
class SelectorList;
class LexicalUnit;

class DocumentHandlerImpl : public DocumentHandler
{
public:
	virtual void StartDocument()throw(CSSException);
	virtual void EndDocument()throw(CSSException);
	virtual void comment(const string& text)throw(CSSException);
	virtual void ignorableAtRule(const string& atRule)throw(CSSException);
	virtual void namespaceDeclaration(const string& prefix,
									  const string& uri)throw(CSSException);
	virtual void importStyle(const string& uri, const SACMediaList* media,
							 const string& defaultNamespaceURI)throw(CSSException);
	virtual void startMedia(const SACMediaList* media)throw(CSSException);
	virtual void endMedia(const SACMediaList* media)throw(CSSException);
	virtual void startPage(const string& name,
						   const string& pseudo_page)throw(CSSException);
	virtual void endPage(const string& name,
						 const string& pseudo_page)throw(CSSException);
	virtual void startFontFace()throw(CSSException);
	virtual void endFontFace()throw(CSSException);
	virtual void startSelector(const SelectorList* selectors)throw(CSSException);
	virtual void endSelector(const SelectorList* selectors)throw(CSSException);
	virtual void property(const string& name, const LexicalUnit* value,
						  bool important)throw(CSSException);
};


#endif // DOCUMENTHANDLERIMPL_H_INCLUDED
